Что такое паттерны проектирования?
Паттерны (или шаблоны) проектирования - это продуманные типовые решения типовых задач.
Шаблоны проектирования - это общие архитектурные подходы, которые люди наблюдали в объектно-ориентированном программировании. И в итоге решили составить каталог из тех, что встречались чаще всего.
В программировании достаточно много времени уделяется оптимизации кода. И переделывать сложнее, чем изначально заложить такую структуру и стиль, которые будут нуждаться в минимальных доработках. Нужно быть настоящим архитектором своего кода, а поможет в этом понимание и грамотное применение шаблонов проектирования.
Шаблоны проектирования - это важнейший из инструментов разработчика, который упрощает и ускоряет процесс обмена информацией при разработке, сокращает время на обсуждения по проектам и понимание "чужого" кода. Сами названия шаблонов являются полноценными терминами, означающих готовые схемы-решения.
Шаблоны проектирования встречаются повсюду: в любых библиотеках, они встроены в сами языки программирования. Так что вы даже не всегда осознаёте, что ими уже пользуетесь.
Впервые шаблоны проектирования были введены в оборот в 1994 году с выходом книги Design Patterns: Elements of Reusable Object-Oriented Software за авторством Erich Gamma (Эрих Гамма), John Vlissides (Джон Влиссидес), Ralph Johnson (Ральф Джонсон) and Richard Helm (Ричард Хелм), которых часто именуют “Бандой четырёх” (англ. Gang of Four, часто сокращается до GoF). Именно эта книга стала причиной роста популярности шаблонов проектирования и создала целую отрасль, посвящённую шаблонам проектирования.
Чему вы научитесь
Курс даёт всеобъемлющий обзор паттернов (шаблонов) проектирования на Python на практике. Этот курс покрывает шаблоны посредством:
- использования самой новой версии Python
- использования современных подходов программирования: инъекции зависимостей, реактивное программирование и т.д.
- использования современных средств разработки таких как PyCharm
- дискуссий различных вариаций паттернов и различных подходов
На курсе рассматриваются все шаблоны проектирования из книги "банды четырёх", а также их различные современные вариации с поправками и использованием особенностей языка Python. Вот полный список тем:
- Принципы проектирования SOLID: принцип единственной ответственности (SRP), принцип открытости / закрытости (OCP), принцип подстановки Лисков (LSP), принцип разделения интерфейсов (ISP), принцип инверсии зависимостей (DIP)
- Паттерны порождения: строитель, фабрики, прототип, одиночка
- Структурные паттерны: адаптер, мост, компоновщик, декоратор, фасад, приспособленец, прокси
- Поведенческие паттерны: цепочка зависимости, команда, интерпретатор, итератор, медиатор, хранитель, наблюдатель, состояние, стратегия, шаблонный метод, посетитель
В каждом разделе есть задание по программированию, где надо использовать рассмотренный шаблон проектирования. Код решения приложен. Обязательно сначала попробуйте решить самостоятельно!
Для кого этот курс- Курс для опытных (как минимум очень хорошо знакомых с Python) разработчиков, которые хотят познакомиться с современными вариантами реализации паттернов (а не только книжными устаревшими)
- Для понимания и осознания этого материала требуется хорошее абстрактное мышление инженерное или побольше практики в программировании
Требования для прохождения курса- Уверенные знания в Python
Для получения базовых знаний рекомендуем пройти наши курсы для начинающих:
Полный курс Python для начинающих – с нуля до специалистаПолный курс Python – продвинутый уровень + SQLПрисоединяйтесь к изучению Python на профессиональном уровне! Программа обучения включает видео уроки по изучению паттернов (шаблонов) проектирования на Python. Благодаря практическим заданиям, Вы сможете закрепить полученные знания по каждой теме курса.
Мы собрали отзывы учеников, прошедших онлайн курс. Оставьте свой отзыв после прохождения курса Шаблоны проектирования на Python.
Илья Фофанов & Dmitri Nesteruk
О преподавателях курса
Илья Фофанов
- Инженер-программист с опытом более 15 лет
- Сертифицированный специалист по WPF и WCF
- Организатор и координатор .NET митапов MskDotNet
"Я благодарен за то, что люблю своё дело.
Профессионально занимался проектированием и реализацией ПО больше 10 лет, преимущественно на платформе .NET. Люблю работать над созданием богатых и мощных приложений с использованием современных технологий. Сертифицированный специалист по WPF и WCF. Один из координаторов московских .NET митапов MskDotNet.
О стиле преподавания: самое главное, что характеризует мои курсы - выжимка самого необходимого. Краткость - сестра таланта, и я верю в то, что в современную эпоху информационной перегруженности - необходимо сосредотачиваться на самом главном и отсеивать "лишнее" до тех пор, пока это "лишнее" действительно не понадобится.
Пожелание студентам: Fake it Till You Make it! Это означает: притворяйся, пока не получится. Хотите стать senior developer? Имитируйте его деятельность, старайтесь делать всё то же, что делает senior developer, и так или иначе - вы им станете. Поэтому - учиться, учиться и ещё раз учиться. Нет унынию. Fake it Till You Make it!"
Дмитрий Нестерук (Dmitri Nesteruk)
- Software/Hardware Engineering • Quant Finance • Algotrading
Dmitri is a quant, developer, book author and course author. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C# and C++ programming as well high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009.
Курс очень понравился, спасибо!